function cvx_expert_check( fname, varargin )

global cvx___
if ~cvx___.expert & ( isempty(varargin) | any( cellfun( 'isclass', varargin, 'cvx' ) ) ),
    disp( sprintf( [ 'CVX Warning:\n', ...
        '   Models involving "%s" or other functions in the log, exp, and entropy\n', ...
        '   family are solved using an experimental successive approximation method.\n', ...
        '   The method requires multiple calls to the solver, so it can be slow; and\n', ...
        '   in certain cases it fails to converge. See the user''s guide for details\n', ...
        '   on the method, as well as instructions for suppressing this warning.' ], fname ) );
    cvx___.expert = true;
end
